import random

INDEXBOX = 10   #哈希表最大元素
MAXNUM = 7  #最大数据个数
#打印数据子程序
def printData(data,max_number):
    print('\t',end='')
    for i in range(max_number):
        print('[%2d] '%data[i],end='')
    print()

#创建哈希表子程序
def createTable(num,index):     #建立哈希表子程序
    tmp = num % INDEXBOX
    while True:
        if index[tmp] == -1:
            index[tmp] = num
            break
        else:
            tmp = (tmp + 1) % INDEXBOX      #否则往后寻找位置存放

#主程序
def main():
    index = [None] * INDEXBOX
    data = [None] * MAXNUM
    print('原始数据值：')
    for i in range(MAXNUM):
        data[i] = random.randint(1,20)
    for i in range(INDEXBOX):   #清除哈希表
        index[i] = -1
    printData(data,MAXNUM)

    print("哈希表的内容：")
    for i in range(MAXNUM):     #建立海西表
        createTable(data[i],index)
        print('  %2d =>'%data[i],end='')    #打印单个元素的哈希表位置
        printData(index,INDEXBOX)

    print('完成的哈希表：')
    printData(index,INDEXBOX)

if __name__ == '__main__':
    main()